Iterator হল একটি ইন্টারফেস যা Java Collections Framework এর অংশ এবং এটি ডেটা সংগ্রহে (যেমন List, Set, Queue) উপাদানগুলির উপর পুনঃপ্রবেশ করতে ব্যবহৃত হয়। Iterator আপনাকে একটি সংগ্রহের উপাদানগুলিতে একটি এককভাবে প্রবাহিত (iterate) করার সুবিধা দেয়। এটি ডেটা সংগ্রহের উপাদানগুলি একে একে অ্যাক্সেস করার জন্য একটি সাধারণ এবং আদর্শ পদ্ধতি প্রদান করে।
Iterator ইন্টারফেসটি hasNext(), next(), এবং remove() মেথডগুলির মাধ্যমে ব্যবহার করা হয়। এই মেথডগুলি ডেটা সংগ্রহে আইট্রেট করা, উপাদান অ্যাক্সেস করা এবং মুছে ফেলা সহজ করে তোলে।
1. hasNext() মেথড
hasNext() মেথডটি চেক করে যে iterator-এ আরও উপাদান আছে কিনা। এটি boolean মান ফেরত দেয়:
true: যদি আরো উপাদান থাকে।false: যদি আর কোনো উপাদান না থাকে।
Syntax:
boolean hasNext();
Example:
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorHasNextExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// Get the Iterator
Iterator<String> iterator = list.iterator();
// Using hasNext() to check if there's another element
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
Output:
Apple
Banana
Cherry
ব্যাখ্যা: এখানে hasNext() মেথডটি চেক করে যে iterator-এ আরও উপাদান আছে কিনা এবং উপাদানগুলি একে একে next() মেথড দিয়ে অ্যাক্সেস করা হয়।
2. next() মেথড
next() মেথডটি iterator এর পরবর্তী উপাদানটি ফেরত দেয় এবং iterator কে পরবর্তী উপাদানে স্থানান্তরিত করে। আপনি যদি next() মেথড কল করেন যখন iterator-এ কোনো উপাদান না থাকে, তাহলে এটি NoSuchElementException ছুড়ে দেয়।
Syntax:
E next();
- এখানে E হল উপাদান টাইপ।
Example:
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorNextExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// Get the Iterator
Iterator<String> iterator = list.iterator();
// Using next() to access elements
while (iterator.hasNext()) {
String fruit = iterator.next();
System.out.println(fruit);
}
}
}
Output:
Apple
Banana
Cherry
ব্যাখ্যা: next() মেথডটি iterator থেকে পরবর্তী উপাদানটি ফেরত দেয় এবং সেটি প্রদর্শন করে। এরপর iterator পরবর্তী উপাদানে চলে যায়।
3. remove() মেথড
remove() মেথডটি iterator এর মাধ্যমে বর্তমানে next() মেথড দ্বারা প্রবাহিত (iterated) উপাদানটি মুছে ফেলে। এটি IllegalStateException ছুড়ে দেবে যদি next() মেথডটি প্রথমে কল না করা হয় এবং remove() কল করা হয়।
Syntax:
void remove();
Example:
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorRemoveExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// Get the Iterator
Iterator<String> iterator = list.iterator();
// Using hasNext(), next(), and remove()
while (iterator.hasNext()) {
String fruit = iterator.next();
if (fruit.equals("Banana")) {
iterator.remove(); // Remove "Banana"
}
}
// Display the updated list
System.out.println("Updated list: " + list);
}
}
Output:
Updated list: [Apple, Cherry]
ব্যাখ্যা: এখানে, আমরা iterator.remove() ব্যবহার করে "Banana" উপাদানটি মুছে ফেলেছি। next() মেথড দ্বারা আমরা iterator থেকে পরবর্তী উপাদানটি অ্যাক্সেস করেছি এবং সেগুলির মধ্যে থেকে "Banana" মুছে ফেলেছি।
4. Summary of Iterator Methods
| Method | Description |
|---|---|
hasNext() | Returns true if there are more elements, false otherwise. |
next() | Returns the next element in the iteration. Throws NoSuchElementException if no more elements. |
remove() | Removes the last element returned by the iterator. Throws IllegalStateException if next() was not called before. |
5. Best Practices with Iterator
- Use in loops: Iterator সবচেয়ে বেশি ব্যবহৃত হয়
whileবাforলুপে যাতে সহজে সব উপাদানে প্রবাহিত হওয়া যায়। - Avoid ConcurrentModificationException: যখন একটি
Collectionমডিফাই করা হচ্ছে, তখন Iterator এরremove()ব্যবহার করতে হয়। তবে, সরাসরিCollectionথেকে উপাদান মুছে ফেলা হলেConcurrentModificationExceptionহতে পারে। - Use Iterator for Safe Removal: যখন আপনি
List,Set, বাMapএর থেকে উপাদান মুছে ফেলতে চান, তখনIteratorব্যবহার করুন, কারণ এটি আপনার প্রোগ্রামকে নিরাপদভাবে উপাদান মুছে ফেলতে সাহায্য করে।
- Iterator Interface আপনাকে Java Collections (যেমন List, Set) এর উপাদানগুলির উপর iteration (প্রবাহিত হওয়া) এবং removal এর সুবিধা প্রদান করে।
hasNext(),next(), এবংremove()হল Iterator এর প্রধান মেথড, যা আপনাকে ডেটা সংগ্রহে নিরাপদে কাজ করার সুযোগ দেয়।- Iterator ইন্টারফেসটি ব্যবহার করে ডেটার উপাদান গুলিকে efficiently এবং safely এক্সেস এবং ম্যানিপুলেট করা যায়।
Read more